@startuml
namespace configuration {
    class ContainerProperties << (S,Aquamarine) >> {
        + RuntimeClass string

    }
    class FeatureProperties << (S,Aquamarine) >> {
        + LoggingEnabled bool

    }
    class GeneratorProperties << (S,Aquamarine) >> {
        + Container ContainerProperties
        + ImagePullSecretFiles []string
        + Quota NamespaceQuotaProperties
        + Volumes VolumesProperties

    }
    class LoggingProperties << (S,Aquamarine) >> {
        + Host string
        + User string
        + Password string
        + DashboardHost string

    }
    class MongoProperties << (S,Aquamarine) >> {
        + ConnectionURI string
        + Database string

    }
    class NamespaceQuotaProperties << (S,Aquamarine) >> {
        + CPULimit string
        + RAMLimit string
        + EphemeralStorageLimit string

    }
    class Properties << (S,Aquamarine) >> {
        + Log logger.Properties
        + Feature FeatureProperties
        + Mongo MongoProperties
        + HttpServer http-server.HttpServerProperties
        + ManagementServer http-server.HttpServerProperties
        + Task TaskProperties
        + TaskMetricsController SchedulerProperties
        + SynchronizationController SchedulerProperties
        + LoggingController SchedulerProperties
        + Generator GeneratorProperties
        + Logging LoggingProperties

    }
    class SchedulerProperties << (S,Aquamarine) >> {
        + Timeout time.Duration
        + TaskExecutionTimeout time.Duration

    }
    class TaskProperties << (S,Aquamarine) >> {
        + ProvisioningDeadline time.Duration

    }
    class VolumesProperties << (S,Aquamarine) >> {
        + DefaultStorageClassName string

    }
}


@enduml
